import 'package:flutter/material.dart';

class PermissionItem extends StatelessWidget {
  final String title;
  final IconData icon;
  final VoidCallback? onTap; // 场景1：点击触发的通用操作，比如页面跳转或弹框
  final bool? value; // 场景2：布尔值
  final ValueChanged<bool>? onBoolChange; // 场景2：布尔值控制的回调

  const PermissionItem({
    required this.title,
    required this.icon,
    this.onTap,
    this.value,
    this.onBoolChange,
    Key? key,
  }) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return GestureDetector(
      onTap: () {
        if (value != null && onBoolChange != null) {
          // 场景2：如果是布尔控制类型
          onBoolChange!(!value!); // 反转布尔值并调用回调函数
        } else if (onTap != null) {
          // 场景1：如果是点击跳转或弹框显示
          onTap!();
        }
      },
      child: Container(
        padding: const EdgeInsets.only(left: 24),
        child: Row(
          children: [
            Icon(icon, size: 18, color: Colors.blue), // 使用Flutter自带的Icon
            const SizedBox(width: 16),
            Expanded(
              child: Padding(
                padding: const EdgeInsets.symmetric(vertical: 11),
                child: Text(
                  title,
                  style: const TextStyle(
                    color: Color(0xff344356),
                    fontSize: 12,
                    fontWeight: FontWeight.w700,
                  ),
                ),
              ),
            ),
            // 场景2：显示小尺寸布尔开关（如果value不为空）
            if (value != null)
              Transform.scale(
                scale: 0.6, // 调整Switch的大小
                child: Switch(
                  value: value!,
                  onChanged: onBoolChange,
                  activeColor: Colors.blue, // 设置Switch颜色
                ),
              ),
          ],
        ),
      ),
    );
  }
}
